import { Button } from 'antd'

const A03 = async () => {
    return ({
        url: 1000, // 临时获取数据
        classification: 'Multi', // 页面类型选择
        initParameter: {    // 初始化函数
            // 分组逻辑 Ps:必填 可为[]
            group: ['country', 'product', 'state'],
            // 排序逻辑 Ps:必填 可为[] 配合allowSorting 可锁死某项排序
            sort: [],
            // // 过滤器
            // filter: true,
            // 添加第一列索引
            addIndex: true,
            // 页头字符
            topText: 'Ω',
        },
        configuration: {// 基础配置
            // true     只读 Ps:常驻 可持续开启
            isReadOnly: true,
            // 是否聚合 Ps:开启后 需要列设置allowMerging字段为true 可持续开启
            allowMerging: "Cells",
            // 禁止排序操作 None:禁用 SingleColumn:单排 MultiColumn:多排 
            allowSorting: 'SingleColumn',
            // // false    禁止改变大小
            // allowResizing: false,
            // // 屏蔽第一列  
            // headersVisibility: 'Column',
            // 表单选中 0:禁用 1:单元格 2:多单元格 3:单行 4:多行 5:多选行 MultiRange:列Ps:需关闭排序和拖动
            selectionMode: 5,
            // // 冻结行数
            // frozenRows: 2,
            // // 冻结列数
            // frozenColumns: 1,
            // 头部状态折叠按钮
            showHeaderCollapseButton: true,
            // 表头样式 true:折叠 false:展开 null:全部显示
            collapsedHeaders: null,
            // 聚合全部可见 ture false:关闭全部可见
            multiRowGroupHeaders: true
        },
        optionsBtn: click => ([
            {
                key: '0',
                type: 'group',
                label: '新增数据',
                children: [
                    { key: '0-1', label: <Button type='link' onClick={() => click('onAdded')}>新增数据</Button> },
                    { key: '0-2', label: <Button type='link' onClick={() => click('onRefresh')} >刷新数据</Button> },
                ],
            },
            {
                key: '1',
                type: 'group',
                label: '操作选中项',
                children: [
                    { key: '1-1', label: <Button type='link' onClick={() => click('onModify')}>修改选中数据</Button> },
                    { key: '1-2', label: <Button type='link' danger onClick={() => click('onDelete')}>删除选中数据</Button> },
                ],
            },
            {
                key: '2',
                type: 'group',
                label: '导出数据',
                children: [
                    { key: '2-1', label: <Button type='link' onClick={() => click('onSaveAct')}>导出选中数据</Button> },
                    { key: '2-2', label: <Button type='link' onClick={() => click('onSaveAll')}>导出全部数据</Button> },
                ],
            },
        ]),
        layout: [
            {
                header: '地区',
                align: 'center',
                colspan: 2,
                cells: [
                    { binding: 'uuid', header: 'ID', cssClass: 'id', align: 'center', width: 80 },
                    { binding: 'date', header: '时间', align: 'center', width: 160 },
                    { binding: 'country', header: '国家', align: 'center' },
                    { binding: 'product', header: '地区', align: 'center' }
                ]
            },
            {
                header: '业绩',
                align: 'center',
                colspan: 3,
                cells: [
                    { binding: 'state', header: '状态', align: 'center' },
                    { binding: 'sales', header: '销售量', colspan: 2, format: 'c2', align: 'center', aggregate: 1 },
                    { binding: 'discount', header: '折扣', format: 'p2', align: 'center', width: 80 },
                    { binding: 'downloads', header: '下载量', format: 'c2', align: 'center', aggregate: 1 },
                    { binding: 'expenses', header: '成本费', format: 'c2', align: 'center', aggregate: 1 }
                ]
            },
            {
                header: '数据',
                align: 'center',
                colspan: 3,
                cells: [
                    { binding: 'num01', header: 'No.1', align: 'center', aggregate: 1 },
                    { binding: 'num02', header: 'No.2', align: 'center', aggregate: 2 },
                    { binding: 'num03', header: 'No.3', align: 'center', aggregate: 3 },
                    { binding: 'num04', header: 'No.4', align: 'center', aggregate: 4 },
                    { binding: 'num05', header: 'No.4', align: 'center', aggregate: 5 },
                    { binding: 'num06', header: 'No.4', align: 'center', aggregate: 6 },
                ]
            },
        ],
        columns: [ // 字段设置
            {
                dataIndex: 'uuid',
                valueType: 'Hidden'
            },
            {
                title: '国家',
                dataIndex: 'country',
                rules: true,
                valueType: 'Select',
                valueEnum: { 0: '中国', 1: '朝鲜', 2: '韩国', 3: '俄罗斯', 4: '日本' },
            },
            {
                title: '地区',
                dataIndex: 'product',
                rules: true,
                valueType: 'Select',
                valueEnum: { 0: '北京', 1: '上海', 2: '深圳', 3: '重庆', 4: '四川' },
            },
            {
                title: '时间',
                dataIndex: 'date',
                rules: true,
                valueType: 'DatePicker',
                format: 'yyyy/MM/dd',
            },
            {
                title: '状态',
                dataIndex: 'state',
                rules: true,
                valueType: 'Select',
                valueEnum: {
                    0: { text: '待领取...', status: 'default' },
                    1: { text: '解决中...', status: 'processing', disabled: true },
                    2: { text: '已解决!', status: 'success' },
                    3: { text: '警报中!', status: 'warning' },
                    4: { text: '无法解决!', status: 'error' },
                },
                tooltip: '信息提示!',
            },
            {
                title: '折扣',
                dataIndex: 'discount',
                valueType: 'InputNumber',
            },
            {
                title: '下载量',
                dataIndex: 'downloads',
                valueType: 'InputNumber',
                format: 'c2',
                aggTitle: '总计下载'
            },
            {
                title: '销售量',
                dataIndex: 'sales',
                valueType: 'InputNumber',
                format: 'c2',
                aggTitle: '总计销售'
            },
            {
                title: '成本费',
                dataIndex: 'expenses',
                valueType: 'InputNumber',
                format: 'c2',
                aggTitle: '成本合计'
            },
            {
                title: 'No.1',
                dataIndex: 'num01',
                valueType: 'InputNumber',
                format: 'n2',
                aggTitle: '数值总和'
            },
            {
                title: 'No.2',
                dataIndex: 'num02',
                valueType: 'InputNumber',
                format: 'n0',
                aggTitle: '非空行数'
            },
            {
                title: 'No.3',
                dataIndex: 'num03',
                valueType: 'InputNumber',
                format: 'n2',
                aggTitle: '平均值'
            },
            {
                title: 'No.4',
                dataIndex: 'num04',
                valueType: 'InputNumber',
                format: 'n2',
                aggTitle: '最大值'
            },
            {
                title: 'No.5',
                dataIndex: 'num05',
                valueType: 'InputNumber',
                format: 'n2',
                aggTitle: '最小值'
            },
            {
                title: 'No.6',
                dataIndex: 'num06',
                valueType: 'InputNumber',
                format: 'n2',
                aggTitle: '数值差值'
            },
        ],
    })
}

export default A03;